
import { lazyReportBatch } from "../report";
export default function observerLoad ():void {

    //pageShow:页面从首次加载或bfcache 恢复时触发
    //覆盖了 load 事件；多了一个event.persisted关键属性
    //true：页面是从 **bfcache（浏览器前进/后退缓存）**中恢复的；false：正常加载
    //兼容 bfcache 恢复场景;重新触发用户行为监控;恢复页面动画、刷新数据

    //load：只在首次加载页面时触发、不在从浏览器缓存（如 bfcache）中恢复时触发
    //页面首次性能采集；所有资源加载完成后初始化动画/插件；
    
    window.addEventListener('pageShow', function (event) {
        console.log(event)
        //下一帧浏览器即将绘制前；所有同步任务（当前帧的 JavaScript 执行）已完成
        //延迟执行回调，确保在 DOM 渲染之后再采集数据
        //使用 requestAnimationFrame 是为了延迟到“页面即将渲染之前”再执行性能采集逻辑，确保数据准确、视觉一致性高，避免提前采集导致偏差
        requestAnimationFrame(() =>{
            ['load'].forEach((type) => {
                const reportData = {
                    type: 'performance',
                    subType: type,
                    pageUrl: window.location.href,
                    //基于navigationStart
                    startTime: performance.now()- event.timeStamp
                }
                console.log(reportData);
                 //TODO:上报数据
                 //lazyReportBatch( reportData)
            })
             
          })
    }, true);
}
